The present invention relates to query systems.
In particular, the present invention relates to query systems which make use of data-handling systems of different types, for example database systems and search-engine systems. The present invention relates to aspects of the database and search-engine environments, without being solely part of either environment.
A database may be considered to consist of a collection of data organised for one or more purposes, typically in digital form. Databases may be classified by the type of their contents, for example: bibliographic, document-text, statistical. Digital databases are typically managed using database management systems (DBMS), which store database contents, allowing data creation and maintenance, and search and other access.
A database management system (DBMS) typically consists of software that operates databases, providing storage, access, security, backup and other facilities. Database management systems can be categorised according to the database model that they support, such as relational or XML (Extensible Markup Language), the type(s) of computer they support, such as a server cluster or a mobile phone, the query language(s) that access the database, such as SQL (Structured Query Language) or XQuery, or performance trade-offs, such as maximum scale or maximum speed or others. Some DBMSs cover more than one entry in these categories, e.g. supporting multiple query languages.
SQL is a database computer language designed for managing data in relational database management systems (RDBMS). XQuery is a query and functional programming language that is designed to query collections of XML data.
A relational database management system (RDBMS) is typically based on a set of tables (also called “relations”) containing data according to one or more data categories per table column. Each row of a table contains an instance of data. The data domain of possible values can be specified, as well as constraints for each column, during the creation of the database. A table of metadata may store the formal definitions of the database tables, table columns, data domains as well as data constraints.
Typical examples of RDBMSs are IBM DB2, MySQL, Sysbase Database or the Oracle Database. SQL is a typical language used in RDBMSs for data manipulation, i.e. as a DML (Data Manipulation Language). Some databases are enhanced with proprietary search-engine aspects, but functionality is typically limited.
In relation to the object-oriented programming paradigm, object-oriented databases have been considered. An object-oriented database management system (OODBMS) or object database management system (ODBMS) may be considered to be a database management system (DBMS) based on the modelling and creation of data as objects. Such systems may support object classes, class inheritance (polymorphism) and associations between objects. An object class defines a set of attributes according to a data domain.
Examples of OODBMSs are Fujitsu Enabler, ObjectDB and ObjectStore. Typically, ODQL (Object Database Query Language) or OQL (Object Query Language) is used as a query language in such systems, although XQuery and OCL (Object Constraint Language) are other options.
The above-mentioned languages themselves are well-known, and thus further detailed information concerning them (syntax, grammar, etc.) is not included here.
A typical database query language can be divided into different aspects, for example: data selection (filtering); data projection; data traversing; joining data; cross product; and others. A specific query language may not cover all such aspects. For example, data traversal may be a feature in an OODBMS but may not be present in an RDBMS.